Changing a language for a user session replay

ABSTRACT

An approach is provided for changing a language for a replay of a session of a user. If a preferred language for the replay does not match an initial language of content presented to the user, data captured from requests and responses is translated from the initial into the preferred language, and the session replay presents the content in the preferred language; otherwise, the content is presented in the initial language. If a next event in the data indicates a change in an image displayed on a computing device utilized by the user during the session, a Hypertext Markup Language (HTML) document specifying the change is found in a search of HTML documents generated from a resource file from which image data for the session is reproduced, and the session replay employs the HTML document; otherwise, scripts that apply the next event to the HTML documents are generated.

CROSS REFERENCE TO RELATED APPLICATIONS

This application is a continuation application claiming priority to Ser.No. 15/426,736 filed Feb. 7, 2017, the contents of which are herebyincorporated by reference.

BACKGROUND

The present invention relates to analyzing a user session at a website,and more particularly to replaying user sessions in a preferredlanguage.

Many e-commerce websites are available in different regional and globallanguages. The aforementioned web sites use customer experiencemanagement software to capture user sessions (e.g., customer visits) atthe websites and replay the captured user sessions to analyze andimprove the user experience at the websites. Known customer experiencemanagement software captures and replays a user session in the samelanguage that had been selected by the customer for the user session. Abusiness analyst may view replayed user sessions at a website andperform an analysis of the user sessions, where the analysis identifiesdetails about each customer visit to the website.

SUMMARY

In one embodiment, the present invention provides a method of changing alanguage for a replay of a session of a user. The method includes acomputer capturing data from requests and responses included in hits inthe session. The method further includes based on the captured data, thecomputer determining an initial language of content presented to theuser in the session. The method further includes the computer obtaininga selection by an analyst of a preferred language for the replay of thesession. The method further includes the computer determining whetherthe preferred language selected by the analyst matches the initiallanguage of the content presented to the user in the session. The methodfurther includes if the preferred language selected by the analyst doesnot match the initial language of the content presented to the user inthe session, the computer translating the captured data from the initiallanguage into the preferred language and based on the translatedcaptured data, the computer performing the replay of the session bypresenting the content in the preferred language and not in the initiallanguage. The replay of the session is viewed by the analyst. The methodfurther includes if the preferred language matches the initial language,the computer performing the replay of the session by presenting thecontent in the initial language, without translating the captured data.

In another embodiment, the present invention provides a computer programproduct including a computer-readable storage medium and acomputer-readable program code stored in the computer-readable storagemedium. The computer-readable program code includes instructions thatare executed by a central processing unit (CPU) of a computer system toimplement a method of changing a language for a replay of a session of auser. The method includes the computer system capturing data fromrequests and responses included in hits in the session. The methodfurther includes based on the captured data, the computer systemdetermining an initial language of content presented to the user in thesession. The method further includes the computer system obtaining aselection by an analyst of a preferred language for the replay of thesession. The method further includes the computer system determiningwhether the preferred language selected by the analyst matches theinitial language of the content presented to the user in the session.The method further includes if the preferred language selected by theanalyst does not match the initial language of the content presented tothe user in the session, the computer system translating the captureddata from the initial language into the preferred language and based onthe translated captured data, the computer system performing the replayof the session by presenting the content in the preferred language andnot in the initial language. The replay of the session is viewed by theanalyst. The method further includes if the preferred language matchesthe initial language, the computer system performing the replay of thesession by presenting the content in the initial language, withouttranslating the captured data.

In another embodiment, the present invention provides a computer systemincluding a central processing unit (CPU); a memory coupled to the CPU;and a computer-readable storage device coupled to the CPU. The storagedevice includes instructions that are executed by the CPU via the memoryto implement a method of changing a language for a replay of a sessionof a user. The method includes the computer system capturing data fromrequests and responses included in hits in the session. The methodfurther includes based on the captured data, the computer systemdetermining an initial language of content presented to the user in thesession. The method further includes the computer system obtaining aselection by an analyst of a preferred language for the replay of thesession. The method further includes the computer system determiningwhether the preferred language selected by the analyst matches theinitial language of the content presented to the user in the session.The method further includes if the preferred language selected by theanalyst does not match the initial language of the content presented tothe user in the session, the computer system translating the captureddata from the initial language into the preferred language and based onthe translated captured data, the computer system performing the replayof the session by presenting the content in the preferred language andnot in the initial language. The replay of the session is viewed by theanalyst. The method further includes if the preferred language matchesthe initial language, the computer system performing the replay of thesession by presenting the content in the initial language, withouttranslating the captured data.

Embodiments of the present invention enhance customer experiencemanagement software by converting content of a user session from aninitial language of a user session to a different language for a replayof the user session, where the different language is a preferredlanguage of a business analyst. Presenting the replay of the usersession in the preferred language rather than the initial languageallows the business analyst to easily and quickly analyze the userexperience. Furthermore, embodiments of the present invention may allowa team of business analysts to be streamlined and work efficiently, eventhough the team may be skilled in a single preferred language. The teamof business analysts may analyze replays of multiple user sessions,where the content of all of the replays are presented in the preferredlanguage of the team, even though the content had been presented in theinitial user sessions in multiple languages other than the preferredlanguage.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a block diagram of a system for changing a language for areplay of a user session, in accordance with embodiments of the presentinvention.

FIG. 2 is a flowchart of a process of changing a language for a replayof a user session, where the process is implemented in the system ofFIG. 1, in accordance with embodiments of the present invention.

FIG. 3 is a block diagram of a computer included in the system of FIG. 1and that implements the process of FIG. 2, in accordance withembodiments of the present invention.

DETAILED DESCRIPTION

Overview

A business analyst uses known customer experience management software tocapture and replay a user session (i.e., application session) in anatural human language that had been selected by the customer whoperformed the user session. If the customer is using the website inhis/her preferred regional language and if the business analyst is froma different region and is not fluent in the preferred regional languageof the customer, then it is difficult for the business analyst tounderstand the replay of the user session. Embodiments of the presentinvention replay a user session in one or more preferred languages, evenif the preferred language is different from the language of the contentthat had been presented to the customer in the user session. Embodimentsof the present invention allow a replay server to change the language ofa replay of a user session on the fly, thereby allowing a businessanalyst to change the language of a user session replay at any timeduring the replay.

As used herein, a language of a user session, a language of a replay ofa user session, and a preferred language or a preferred regionallanguage of a customer are each defined as a natural human language. Asused herein, a business analyst is defined as a person who optimizesdigital experiences by identifying user behavior patterns, operationalissues, application design flaws, potential fraudulent behavior, andobstacles to key business processes. A business analyst finds andreplays user sessions that represent business transactions (e.g.,placing an order or generating a quote), and identifies user sessions inwhich customers were unable to complete the transaction.

System for Changing a Language for a User Session Replay

FIG. 1 is a block diagram of a system 100 for changing a language for areplay of a user session, in accordance with embodiments of the presentinvention. System 100 includes a computer 102 (also known as a replayserver), which executes a software-based user session replay languagemodification system 104. Computer 102 is operably coupled to a clientcomputer 106 and a computer 108 of a business analyst via one or morecomputer networks (not shown). Client computer 106 is operably coupledto a website server computer 110 via a computer network (not shown).Client computer 106 may be a smartphone, a personal digital assistant, aterminal, a personal computer, a laptop computer, a table computer, orany other computing device that executes a software-based application107. The application 107 performs actions in a user session in whichdifferent functions on client computer 106 are performed (e.g., purchasean item, search the internet, etc.). In one embodiment, application 107operates within a web browser environment and communicates with a webapplication (not shown) being executed on website server computer 110.In another embodiment, application 107 is a native application that mayoperate independently of the aforementioned web application or mayexchange information with the web application.

In one embodiment, a software agent (not shown) is embedded inapplication 107 and captures client events during the user session. Theagent sends the captured client events to computer 102. The agent maysend the client events in JSON format. The client events may identifyany navigation, history, sequence, and/or state of the user session. Theclient events may also include image data, such as a height, a width,and a location of webpage elements. The client events may also includetext, names, field identifiers, location identifiers, image data,Document Object Models (DOMs), mouse clicks, keyboard entries, metadata,or any other data that may be associated with a user input orapplication state for the user session.

Computer 102 stores the captured client events in a data repository 112.User session replay language modification system 104 generates HyperTextMarkup Language (HTML) and Cascading Style Sheet (CSS) code from aresource file 114, which is an image generation file that includessoftware code for generating application 107. For example, resource file114 may include a collection of Extensible Markup Language (XML) codeused by application 107 to display icons, menus, dialog boxes, strings,tables, text box locators, button locators, user-defined binary data, orany other type of data.

User session replay language modification system 104 determines aninitial language of content being presented to a user who initiatesactions of the user session. User session replay language modificationsystem 104 also obtains a selection of an identification of a preferredlanguage 116 for a replay of the user session, where the selection isperformed by a business analyst who is initiating an analysis of theuser session. User session replay language modification system 104 isconfigured to determine whether the initial language of contentpresented to the user in the user session matches preferred language 116and to convert the captured client events (which are in the initiallanguage of the content presented to the user in the user session) intothe preferred language 116 and replay the user session in the preferredlanguage 116 if the initial language does not match preferred language116. User session replay language modification system 104 sends thereplay of the user session to computer 108 so that the content of thereplay is presented in preferred language 116. Presenting the content ofthe replay in preferred language 116 facilitates an analysis by thebusiness analyst of the replay because the business analyst is fluent inthe preferred language 116 and is able to understand the content in thereplay of the user session because it is presented in preferred language116, while the business analyst does not have sufficient fluency skillsin the initial language and therefore is not able to understand thecontent in a replay of the user session had it been presented in theinitial language.

In one embodiment, system 100 includes and is an enhancement of acapture and replay system described in “Capturing and ReplayingApplication Sessions Using Resource Files,” U.S. Patent ApplicationPublication No. 2014/0108911, which is hereby incorporated by referenceherein, in its entirety. The functionality of the components shown inFIG. 1 is described in more detail in the discussion of FIG. 2 and FIG.3 presented below.

Process for Changing a Language for a User Session Replay

FIG. 2 is a flowchart of a process of changing a language for a replayof a user session, where the process is implemented in the system ofFIG. 1, in accordance with embodiments of the present invention. Theprocess of FIG. 2 starts at step 200. In step 202, user session replaylanguage modification system 104 (see FIG. 1) captures data (i.e.,client events) of a user session associated with an execution ofapplication 107 (see FIG. 1). Step 202 includes user session replaylanguage modification system 104 (see FIG. 1) organizing the captureddata into requests and responses within hits in the user session. Asused herein, a hit is a request/response pair, where the request is aclient request to a server for a file. For example, a hit may include arequest to a web server for a web page, image, script, style sheet, etc.

In step 204, user session replay language modification system 104 (seeFIG. 1) determines the content language of the hits in the user session.The content language (i.e., initial language) is the language of thecontent presented to the user during the user session. Step 204 includesuser session replay language modification system 104 (see FIG. 1)storing an identification of the content language in data repository 112(see FIG. 1).

In step 206, user session replay language modification system 104 (seeFIG. 1) obtains an identification of preferred language 116 (see FIG.1), which is a language preferred by an analyst (e.g., business analyst)who is initiating an analysis of the user experience associated with theuser session. Obtaining the identification of preferred language 116(see FIG. 1) may include obtaining a selection by the analyst ofpreferred language 116 (see FIG. 1).

In step 208, user session replay language modification system 104 (seeFIG. 1) determines whether the hits of the user session are processed(i.e., whether all of the data of the user session has been captured andorganized into all of the hits of the user session in step 202) andwhether the user session is ready to be replayed. If user session replaylanguage modification system 104 (see FIG. 1) determines that the hitsare processed and the user session is ready to be replayed, then the Yesbranch of step 208 is taken and step 210 is performed.

In step 210, user session replay language modification system 104 (seeFIG. 1) determines whether the content language matches the preferredlanguage 116 (see FIG. 1). If user session replay language modificationsystem 104 (see FIG. 1) determines in step 210 that the content languagedoes not match preferred language 116 (see FIG. 1), then the No branchof step 210 is taken and step 212 is performed.

In step 212, user session replay language modification system 104 (seeFIG. 1) converts (i.e., translates) the content language of the hits ofthe user session into the preferred language 116 (see FIG. 1). In oneembodiment, user session replay language modification system 104 (seeFIG. 1) employs a language translation application programming interface(API) to translate the content specified by the captured data from thecontent language to the preferred language 116 (see FIG. 1).

In step 214 following step 212, user session replay languagemodification system 104 (see FIG. 1) replays the user session using thehits whose language was converted in step 212, so that the replay of theuser session presents the analyst with the content of the user sessionexpressed in the preferred language 116 (see FIG. 1) and not in thecontent language. After step 214, user session replay languagemodification system 104 (see FIG. 1) sends the replay of the usersession to computer 108 (see FIG. 1), so that the analyst analyzes thereplay of the user session in a language (i.e., preferred language 116(see FIG. 1)) that the analyst understands rather than in the contentlanguage, in which the analyst does not have a level of fluency thatallows the analyst to perform an analysis of the replay in order toimprove the user experience associated with application 107 (see FIG.1). Because the replay of the user session is in the preferred language116 (see FIG. 1), the analyst completes the analysis of the replay,which results in an improvement of the user experience associated withapplication 107 (see FIG. 1).

Following step 214, the process of FIG. 2 ends at step 216.

Returning to step 208, if user session replay language modificationsystem 104 (see FIG. 1) determines that the hits of the user session arenot processed or the user session is not ready to be replayed, then theNo branch of step 208 is taken and the process of FIG. 2 ends at step216.

Returning to step 210, if user session replay language modificationsystem 104 (see FIG. 1) determines that the content language matches thepreferred language 116 (see FIG. 1), then the Yes branch of step 210 istaken and step 214 is performed. In step 214 following step 210, usersession replay language modification system 104 (see FIG. 1) replays theuser session using the hits whose content is in the aforementionedcontent language, which is the same as preferred language 116 (see FIG.1), so that the replay of the user session presents the analyst with thecontent of the user session expressed in the preferred language 116 (seeFIG. 1), without converting the content language to another language.After step 214 which follows step 210, user session replay languagemodification system 104 (see FIG. 1) sends the replay of the usersession to computer 108 (see FIG. 1), so that the analyst analyzes thereplay of the user session in a language (i.e., preferred language 116(see FIG. 1)) that the analyst understands, which allows the analyst toperform an analysis of the replay in order to improve the userexperience associated with application 107 (see FIG. 1). Because thereplay of the user session is in the preferred language 116 (see FIG.1), the analyst completes the analysis of the replay, which results inan improvement of the user experience associated with application 107(see FIG. 1). Following step 214, the process of FIG. 2 ends at step216.

In one embodiment, the process of FIG. 2 is modified to include thefollowing steps prior to step 208: (1) user session replay languagemodification system 104 (see FIG. 1) parses events (i.e., client events)included in the data captured in step 202; (2) user session replaylanguage modification system 104 (see FIG. 1) identifies a next eventincluded in the parsed events or if there is no next event to beprocessed then the modified process of FIG. 2 ends; (3) user sessionreplay language modification system 104 (see FIG. 1) determines whetherthe next event indicates a change in an image displayed on a screen ofclient computer 106 (see FIG. 1) (i.e., indicates a screen view change);(4) if the determination in step (3) indicates the change in the image,then user session replay language modification system 104 (see FIG. 1)searches Hypertext Markup Language (HTML) documents generated fromresource file 114 (see FIG. 1) from which image data for the usersession is reproduced; (5) in response to the search in step (4), usersession replay language modification system 104 (see FIG. 1) determiningwhether one of the HTML documents specify the change in the image; (6)if the determination in step (5) indicates an HTML document thatspecifies the change in the image, user session replay languagemodification system 104 (see FIG. 1) replays the user session byemploying the HTML document that specifies the change in the image; (7)if the determination in step (6) indicates that none of the HTMLdocuments searched in step (4) specify the change in the image, usersession replay language modification system 104 (see FIG. 1) generatesan HTML document that specifies the change in the image and replays theuser session by employing the generated HTML document; and (8) if thedetermination in step (3) indicates that the next event does notindicate a change in the image, then user session replay languagemodification system 104 (see FIG. 1) generates scripts that apply thenext event to the HTML documents generated from resource file 114 (seeFIG. 1).

In one embodiment, during the replay of the user session, the process ofFIG. 2 is modified to include the following steps: (1) user sessionreplay language modification system 104 (see FIG. 1) replays a firstportion of the user session in a first language; (2) subsequent to step(1) but before the replay of the user session replays a second portionof the user session, user session replay language modification system104 (see FIG. 1) receives from the analyst a selection of a secondlanguage which is different from the first language, where the selectionindicates that the second language will be the language of a nextportion of the replay of the user session; (3) during the replay of theuser session, prior to a replay of the second portion, and in responseto step (2), user session replay language modification system 104 (seeFIG. 1) translates data for the second portion of the user session fromthe first language to the second language (or from the content languageto the second language, where the first language is different from thecontent language); and (4) during the replay of the user session and inresponse to step (3), user session replay language modification system104 (see FIG. 1) replays the second portion of the user session in thesecond language and not in any other language. That is, user sessionreplay language modification system 104 (see FIG. 1) translates thecontent in the replay of the user session on the fly (i.e., during thereplay of the user session).

Computer System

FIG. 3 is a block diagram of a computer included in the system of FIG. 1and that implements the process of FIG. 2, in accordance withembodiments of the present invention. Computer 102 (i.e., relay server)is a computer system that generally includes a central processing unit(CPU) 302, a memory 304, an input/output (I/O) interface 306, and a bus308. Further, computer 102 is coupled to I/O devices 310 and a computerdata storage unit 312. CPU 302 performs computation and controlfunctions of computer 102, including executing instructions included inprogram code 314 for user session replay language modification system104 (see FIG. 1) to perform a method of changing a language for a usersession replay, where the instructions are executed by CPU 302 viamemory 304. CPU 302 may include a single processing unit, or bedistributed across one or more processing units in one or more locations(e.g., on a client and server).

Memory 304 includes a known computer readable storage medium, which isdescribed below. In one embodiment, cache memory elements of memory 304provide temporary storage of at least some program code (e.g., programcode 314) in order to reduce the number of times code must be retrievedfrom bulk storage while instructions of the program code are executed.Moreover, similar to CPU 302, memory 304 may reside at a single physicallocation, including one or more types of data storage, or be distributedacross a plurality of physical systems in various forms. Further, memory304 can include data distributed across, for example, a local areanetwork (LAN) or a wide area network (WAN).

I/O interface 306 includes any system for exchanging information to orfrom an external source. I/O devices 310 include any known type ofexternal device, including a display, keyboard, etc. Bus 308 provides acommunication link between each of the components in computer 102, andmay include any type of transmission link, including electrical,optical, wireless, etc.

I/O interface 306 also allows computer 102 to store information (e.g.,data or program instructions such as program code 314) on and retrievethe information from computer data storage unit 312 or another computerdata storage unit (not shown). Computer data storage unit 312 includes aknown computer readable storage medium, which is described below. In oneembodiment, computer data storage unit 312 is a non-volatile datastorage device, such as a magnetic disk drive (i.e., hard disk drive) oran optical disc drive (e.g., a CD-ROM drive which receives a CD-ROMdisk).

Memory 304 and/or storage unit 312 may store computer program code 314that includes instructions that are executed by CPU 302 via memory 304to change a language for a user session replay. Although FIG. 3 depictsmemory 304 as including program code, the present invention contemplatesembodiments in which memory 304 does not include all of code 314simultaneously, but instead at one time includes only a portion of code314.

Further, memory 304 may include an operating system (not shown) and mayinclude other systems not shown in FIG. 3.

Storage unit 312 and/or one or more other computer data storage units(not shown) that are coupled to computer 102 may include data repository112 (see FIG. 1), and may store resource file 114 (see FIG. 1) and theidentification of preferred language 116 (see FIG. 1).

As will be appreciated by one skilled in the art, in a first embodiment,the present invention may be a method; in a second embodiment, thepresent invention may be a system; and in a third embodiment, thepresent invention may be a computer program product.

Any of the components of an embodiment of the present invention can bedeployed, managed, serviced, etc. by a service provider that offers todeploy or integrate computing infrastructure with respect to changing alanguage for a user session replay. Thus, an embodiment of the presentinvention discloses a process for supporting computer infrastructure,where the process includes providing at least one support service for atleast one of integrating, hosting, maintaining and deployingcomputer-readable code (e.g., program code 314) in a computer system(e.g., computer 102) including one or more processors (e.g., CPU 302),wherein the processor(s) carry out instructions contained in the codecausing the computer system to change a language for a user sessionreplay. Another embodiment discloses a process for supporting computerinfrastructure, where the process includes integrating computer-readableprogram code into a computer system including a processor. The step ofintegrating includes storing the program code in a computer-readablestorage device of the computer system through use of the processor. Theprogram code, upon being executed by the processor, implements a methodof changing a language for a user session replay.

While it is understood that program code 314 for changing a language fora user session replay may be deployed by manually loading directly inclient, server and proxy computers (not shown) via loading a computerreadable storage medium (e.g., computer data storage unit 312), programcode 314 may also be automatically or semi-automatically deployed intocomputer 102 by sending program code 314 to a central server or a groupof central servers. Program code 314 is then downloaded into clientcomputers (e.g., computer 102) that will execute program code 314.Alternatively, program code 314 is sent directly to the client computervia e-mail. Program code 314 is then either detached to a directory onthe client computer or loaded into a directory on the client computer bya button on the e-mail that executes a program that detaches programcode 314 into a directory. Another alternative is to send program code314 directly to a directory on the client computer hard drive. In a casein which there are proxy servers, the process selects the proxy servercode, determines on which computers to place the proxy servers' code,transmits the proxy server code, and then installs the proxy server codeon the proxy computer. Program code 314 is transmitted to the proxyserver and then it is stored on the proxy server.

Another embodiment of the invention provides a method that performs theprocess steps on a subscription, advertising and/or fee basis. That is,a service provider, such as a Solution Integrator, can offer to create,maintain, support, etc. a process of changing a language for a usersession replay. In this case, the service provider can create, maintain,support, etc. a computer infrastructure that performs the process stepsfor one or more customers. In return, the service provider can receivepayment from the customer(s) under a subscription and/or fee agreement,and/or the service provider can receive payment from the sale ofadvertising content to one or more third parties.

The present invention may be a system, a method, and/or a computerprogram product. The computer program product may include a computerreadable storage medium or media (i.e., memory 304 and computer datastorage unit 312) having computer readable program instructions 314thereon for causing a processor (e.g., CPU 302) to carry out aspects ofthe present invention.

The computer readable storage medium can be a tangible device that canretain and store instructions (e.g., program code 314) for use by aninstruction execution device (e.g., computer 102). The computer readablestorage medium may be, for example, but is not limited to, an electronicstorage device, a magnetic storage device, an optical storage device, anelectromagnetic storage device, a semiconductor storage device, or anysuitable combination of the foregoing. A non-exhaustive list of morespecific examples of the computer readable storage medium includes thefollowing: a portable computer diskette, a hard disk, a random accessmemory (RAM), a read-only memory (ROM), an erasable programmableread-only memory (EPROM or Flash memory), a static random access memory(SRAM), a portable compact disc read-only memory (CD-ROM), a digitalversatile disk (DVD), a memory stick, a floppy disk, a mechanicallyencoded device such as punch-cards or raised structures in a groovehaving instructions recorded thereon, and any suitable combination ofthe foregoing. A computer readable storage medium, as used herein, isnot to be construed as being transitory signals per se, such as radiowaves or other freely propagating electromagnetic waves, electromagneticwaves propagating through a waveguide or other transmission media (e.g.,light pulses passing through a fiber-optic cable), or electrical signalstransmitted through a wire.

Computer readable program instructions (e.g., program code 314)described herein can be downloaded to respective computing/processingdevices (e.g., computer 102) from a computer readable storage medium orto an external computer or external storage device (e.g., computer datastorage unit 312) via a network (not shown), for example, the Internet,a local area network, a wide area network and/or a wireless network. Thenetwork may comprise copper transmission cables, optical transmissionfibers, wireless transmission, routers, firewalls, switches, gatewaycomputers and/or edge servers. A network adapter card (not shown) ornetwork interface (not shown) in each computing/processing devicereceives computer readable program instructions from the network andforwards the computer readable program instructions for storage in acomputer readable storage medium within the respectivecomputing/processing device.

Computer readable program instructions (e.g., program code 314) forcarrying out operations of the present invention may be assemblerinstructions, instruction-set-architecture (ISA) instructions, machineinstructions, machine dependent instructions, microcode, firmwareinstructions, state-setting data, or either source code or object codewritten in any combination of one or more programming languages,including an object oriented programming language such as Smalltalk, C++or the like, and conventional procedural programming languages, such asthe “C” programming language or similar programming languages. Thecomputer readable program instructions may execute entirely on theuser's computer, partly on the user's computer, as a stand-alonesoftware package, partly on the user's computer and partly on a remotecomputer or entirely on the remote computer or server. In the latterscenario, the remote computer may be connected to the user's computerthrough any type of network, including a local area network (LAN) or awide area network (WAN), or the connection may be made to an externalcomputer (for example, through the Internet using an Internet ServiceProvider). In some embodiments, electronic circuitry including, forexample, programmable logic circuitry, field-programmable gate arrays(FPGA), or programmable logic arrays (PLA) may execute the computerreadable program instructions by utilizing state information of thecomputer readable program instructions to personalize the electroniccircuitry, in order to perform aspects of the present invention.

Aspects of the present invention are described herein with reference toflowchart illustrations (e.g., FIG. 2) and/or block diagrams (e.g., FIG.1 and FIG. 3) of methods, apparatus (systems), and computer programproducts according to embodiments of the invention. It will beunderstood that each block of the flowchart illustrations and/or blockdiagrams, and combinations of blocks in the flowchart illustrationsand/or block diagrams, can be implemented by computer readable programinstructions (e.g., program code 314).

These computer readable program instructions may be provided to aprocessor (e.g., CPU 302) of a general purpose computer, special purposecomputer, or other programmable data processing apparatus (e.g.,computer 102) to produce a machine, such that the instructions, whichexecute via the processor of the computer or other programmable dataprocessing apparatus, create means for implementing the functions/actsspecified in the flowchart and/or block diagram block or blocks. Thesecomputer readable program instructions may also be stored in a computerreadable storage medium (e.g., computer data storage unit 312) that candirect a computer, a programmable data processing apparatus, and/orother devices to function in a particular manner, such that the computerreadable storage medium having instructions stored therein comprises anarticle of manufacture including instructions which implement aspects ofthe function/act specified in the flowchart and/or block diagram blockor blocks.

The computer readable program instructions (e.g., program code 314) mayalso be loaded onto a computer (e.g. computer 102), other programmabledata processing apparatus, or other device to cause a series ofoperational steps to be performed on the computer, other programmableapparatus or other device to produce a computer implemented process,such that the instructions which execute on the computer, otherprogrammable apparatus, or other device implement the functions/actsspecified in the flowchart and/or block diagram block or blocks.

The flowchart and block diagrams in the Figures illustrate thearchitecture, functionality, and operation of possible implementationsof systems, methods, and computer program products according to variousembodiments of the present invention. In this regard, each block in theflowchart or block diagrams may represent a module, segment, or portionof instructions, which comprises one or more executable instructions forimplementing the specified logical function(s). In some alternativeimplementations, the functions noted in the block may occur out of theorder noted in the figures. For example, two blocks shown in successionmay, in fact, be executed substantially concurrently, or the blocks maysometimes be executed in the reverse order, depending upon thefunctionality involved. It will also be noted that each block of theblock diagrams and/or flowchart illustration, and combinations of blocksin the block diagrams and/or flowchart illustration, can be implementedby special purpose hardware-based systems that perform the specifiedfunctions or acts or carry out combinations of special purpose hardwareand computer instructions.

While embodiments of the present invention have been described hereinfor purposes of illustration, many modifications and changes will becomeapparent to those skilled in the art. Accordingly, the appended claimsare intended to encompass all such modifications and changes as fallwithin the true spirit and scope of this invention.

What is claimed is:
 1. A computer-implemented method of changing alanguage for a replay of a session of a user, the method comprising:determining, by one or more processors, whether a preferred language forthe replay of the session matches an initial language of contentpresented to the user in the session, the preferred language selected byan analyst; if the preferred language selected by the analyst does notmatch the initial language of the content presented to the user in thesession, translating, by the one or more processors, data from theinitial language into the preferred language, the data being capturedfrom requests and responses included in hits in the session, and basedon the translated captured data, performing, by the one or moreprocessors, the replay of the session by presenting the content in thepreferred language and not in the initial language, the replay of thesession being viewed by the analyst, or if the preferred languagematches the initial language, performing, by the one or more processors,the replay of the session by presenting the content in the initiallanguage, without translating the captured data; parsing, by the one ormore processors, events included in the captured data; identifying, bythe one or more processors, a next event in the parsed events;determining, by the one or more processors, whether the next eventindicates a change in an image displayed on a computing device beingutilized by the user during the session; and if the next event indicatesthe change in the image displayed on the computing device, searching, bythe one or more processors, Hypertext Markup Language (HTML) documentsand based on the searched HTML documents, finding, by the one or moreprocessors, an HTML document that specifies the change in the imagedisplayed on the computing device, wherein the performing the replay ofthe session by presenting the content in the preferred language includesreplaying the session by employing the HTML document, and wherein theHTML documents are generated from a resource file from which image datafor the session is reproduced, or if the next event does not indicatethe change in the image displayed on the computing device, generating,by the one or more processors, scripts that apply the next event to theHTML documents.
 2. The method of claim 1, further comprising: during thereplay of the session, replaying, by the one or more processors, a firstportion of the session in the preferred language; subsequent to thereplaying the first portion of the session but before the replay of thesession is completed, obtaining, by the one or more processors, aselection by the analyst of a second language, the second language beingdifferent from the preferred language; and during the replay of thesession and in response to the obtaining the selection of the secondlanguage, replaying, by the one or more processors, a second portion ofthe session in the second language.
 3. The method of claim 1, whereinthe translating the captured data into the preferred language includesemploying a language translation application programming interface totranslate the captured data from the initial language to the preferredlanguage.
 4. The method of claim 1, further comprising: parsing, by theone or more processors, events included in the captured data;identifying, by the one or more processors, a next event in the parsedevents; determining, by the one or more processors, that the next eventindicates a change in an image displayed on a computing device beingutilized by a first user during the session; searching, by the one ormore processors, Hypertext Markup Language (HTML) documents generatedfrom a resource file from which image data for the session isreproduced; in response to the searching, determining, by the one ormore processors, that the HTML documents do not include an HTML documentthat specifies the change in the image displayed on the computingdevice; and based on the HTML documents not including the HTML documentthat specifies the change in the image displayed on the computingdevice, generating, by the one or more processors, the HTML documentthat specifies the change in the image displayed on the computingdevice, wherein the performing the replay of the session by presentingthe content in the preferred language includes replaying the session byemploying the generated HTML document.
 5. The method of claim 4, furthercomprising determining, by the one or more processors, that thepreferred language does not match the initial language, wherein theparsing the events includes parsing the events included in the captureddata within a JSON file, wherein the generating the HTML documentincludes generating the HTML document that employs a combination ofevents in the JSON file and data from the resource file, and wherein theperforming the replay of the session by presenting the content in thepreferred language is based on the generated HTML document.
 6. Themethod of claim 1, further comprising: obtaining, by the one or moreprocessors, a selection of a second preferred language for the replay ofthe session, the second preferred language being different from thepreferred language selected by the analyst; determining, by the one ormore processors, that the initial language does not match the secondpreferred language; and based on the initial language not matching thesecond preferred language, translating, by the one or more processors,the captured data from the initial language into to the second preferredlanguage and replaying, by the one or more processors, the session bypresenting the content in the second preferred language, wherein thepresenting the content in the preferred language and the presenting thecontent in the second preferred language are performed at least in partsimultaneously.
 7. The method of claim 1, further comprising: providingat least one support service for at least one of creating, integrating,hosting, maintaining, and deploying computer readable program code in acomputer, the program code being executed by a processor of the computerto implement the (i) determining whether the preferred language matchesthe initial language, (ii) if the preferred language does not match theinitial language, translating the captured data into the preferredlanguage and performing the replay of the session in the preferredlanguage and not in the initial language, or if the preferred languagematches the initial language, performing the replay of the session bypresenting the content in the initial language without translating thecaptured data, (iii) parsing the events, (iv) identifying the nextevent, (v) determining whether the next event indicates the change inthe image displayed on the computing device, and (vi) if the next eventindicates the change in the image displayed on the computing device,searching HTML documents and finding the HTML document that specifiesthe change in the image or if the next event does not indicate thechange in the image, generating the scripts that apply the next event tothe HTML documents.
 8. A computer program product, comprising: acomputer readable storage medium; and a computer readable program codestored in the computer readable storage medium, the computer readableprogram code containing instructions that are executed by a centralprocessing unit (CPU) of a computer system to implement a method ofchanging a language for a replay of a session of a user, the methodcomprising: the computer system determining whether a preferred languagefor the replay of the session matches an initial language of contentpresented to the user in the session, the preferred language selected byan analyst; if the preferred language selected by the analyst does notmatch the initial language of the content presented to the user in thesession, the computer system translating data from the initial languageinto the preferred language, the data being captured from requests andresponses included in hits in the session, and based on the translatedcaptured data, the computer system performing the replay of the sessionby presenting the content in the preferred language and not in theinitial language, the replay of the session being viewed by the analyst,or if the preferred language matches the initial language, the computersystem performing the replay of the session by presenting the content inthe initial language, without translating the captured data; thecomputer system parsing events included in the captured data; thecomputer system identifying a next event in the parsed events; thecomputer system determining whether the next event indicates a change inan image displayed on a computing device being utilized by the userduring the session; and if the next event indicates the change in theimage displayed on the computing device, the computer system searchingHypertext Markup Language (HTML) documents and based on the searchedHTML documents, the computer system finding an HTML document thatspecifies the change in the image displayed on the computing device,wherein the performing the replay of the session by presenting thecontent in the preferred language includes replaying the session byemploying the HTML document, and wherein the HTML documents aregenerated from a resource file from which image data for the session isreproduced, or if the next event does not indicate the change in theimage displayed on the computing device, the computer system generatingscripts that apply the next event to the HTML documents.
 9. The computerprogram product of claim 8, wherein the method further comprises: duringthe replay of the session, the computer system replaying a first portionof the session in the preferred language; subsequent to the replayingthe first portion of the session but before the replay of the session iscompleted, the computer system obtaining a selection by the analyst of asecond language, the second language being different from the preferredlanguage; and during the replay of the session and in response to theobtaining the selection of the second language, the computer systemreplaying a second portion of the session in the second language. 10.The computer program product of claim 8, wherein the translating thecaptured data into the preferred language includes employing a languagetranslation application programming interface to translate the captureddata from the initial language to the preferred language.
 11. Thecomputer program product of claim 8, wherein the method furthercomprises: the computer system parsing events included in the captureddata; the computer system identifying a next event in the parsed events;the computer system determining that the next event indicates a changein an image displayed on a computing device being utilized by a firstuser during the session; the computer system searching Hypertext MarkupLanguage (HTML) documents generated from a resource file from whichimage data for the session is reproduced; in response to the searching,the computer system determining that the HTML documents do not includean HTML document that specifies the change in the image displayed on thecomputing device; and based on the HTML documents not including the HTMLdocument that specifies the change in the image displayed on thecomputing device, the computer system generating the HTML document thatspecifies the change in the image displayed on the computing device,wherein the performing the replay of the session by presenting thecontent in the preferred language includes replaying the session byemploying the generated HTML document.
 12. The computer program productof claim 11, wherein the method further comprises the computer systemdetermining that the preferred language does not match the initiallanguage, wherein the parsing the events includes parsing the eventsincluded in the captured data within a JSON file, wherein the generatingthe HTML document includes generating the HTML document that employs acombination of events in the JSON file and data from the resource file,and wherein the performing the replay of the session by presenting thecontent in the preferred language is based on the generated HTMLdocument.
 13. The computer program product of claim 8, wherein themethod further comprises: the computer system obtaining a selection of asecond preferred language for the replay of the session, the secondpreferred language being different from the preferred language selectedby the analyst; the computer system determining that the initiallanguage does not match the second preferred language; and based on theinitial language not matching the second preferred language, thecomputer system translating the captured data from the initial languageinto to the second preferred language and the computer system replayingthe session by presenting the content in the second preferred language,wherein the presenting the content in the preferred language and thepresenting the content in the second preferred language are performed atleast in part simultaneously.
 14. A computer system comprising: acentral processing unit (CPU); a memory coupled to the CPU; and acomputer readable storage device coupled to the CPU, the storage devicecontaining instructions that are executed by the CPU via the memory toimplement a method of changing a language for a replay of a session of auser, the method comprising: the computer system determining whether apreferred language for the replay of the session matches an initiallanguage of content presented to the user in the session, the preferredlanguage selected by an analyst; if the preferred language selected bythe analyst does not match the initial language of the content presentedto the user in the session, the computer system translating data fromthe initial language into the preferred language, the data beingcaptured from requests and responses included in hits in the session,and based on the translated captured data, the computer systemperforming the replay of the session by presenting the content in thepreferred language and not in the initial language, the replay of thesession being viewed by the analyst, or if the preferred languagematches the initial language, the computer system performing the replayof the session by presenting the content in the initial language,without translating the captured data; the computer system parsingevents included in the captured data; the computer system identifying anext event in the parsed events; the computer system determining whetherthe next event indicates a change in an image displayed on a computingdevice being utilized by the user during the session; and if the nextevent indicates the change in the image displayed on the computingdevice, the computer system searching Hypertext Markup Language (HTML)documents and based on the searched HTML documents, the computer systemfinding an HTML document that specifies the change in the imagedisplayed on the computing device, wherein the performing the replay ofthe session by presenting the content in the preferred language includesreplaying the session by employing the HTML document, and wherein theHTML documents are generated from a resource file from which image datafor the session is reproduced, or if the next event does not indicatethe change in the image displayed on the computing device, the computersystem generating scripts that apply the next event to the HTMLdocuments.
 15. The computer system of claim 14, wherein the methodfurther comprises: during the replay of the session, the computer systemreplaying a first portion of the session in the preferred language;subsequent to the replaying the first portion of the session but beforethe replay of the session is completed, the computer system obtaining aselection by the analyst of a second language, the second language beingdifferent from the preferred language; and during the replay of thesession and in response to the obtaining the selection of the secondlanguage, the computer system replaying a second portion of the sessionin the second language.
 16. The computer system of claim 14, wherein thetranslating the captured data into the preferred language includesemploying a language translation application programming interface totranslate the captured data from the initial language to the preferredlanguage.
 17. The computer system of claim 14, wherein the methodfurther comprises: the computer system parsing events included in thecaptured data; the computer system identifying a next event in theparsed events; the computer system determining that the next eventindicates a change in an image displayed on a computing device beingutilized by a first user during the session; the computer systemsearching Hypertext Markup Language (HTML) documents generated from aresource file from which image data for the session is reproduced; inresponse to the searching, the computer system determining that the HTMLdocuments do not include an HTML document that specifies the change inthe image displayed on the computing device; and based on the HTMLdocuments not including the HTML document that specifies the change inthe image displayed on the computing device, the computer systemgenerating the HTML document that specifies the change in the imagedisplayed on the computing device, wherein the performing the replay ofthe session by presenting the content in the preferred language includesreplaying the session by employing the generated HTML document.
 18. Thecomputer system of claim 17, wherein the method further comprises thecomputer system determining that the preferred language does not matchthe initial language, wherein the parsing the events includes parsingthe events included in the captured data within a JSON file, wherein thegenerating the HTML document includes generating the HTML document thatemploys a combination of events in the JSON file and data from theresource file, and wherein the performing the replay of the session bypresenting the content in the preferred language is based on thegenerated HTML document.
 19. The computer system of claim 14, whereinthe method further comprises: the computer system obtaining a selectionof a second preferred language for the replay of the session, the secondpreferred language being different from the preferred language selectedby the analyst; the computer system determining that the initiallanguage does not match the second preferred language; and based on theinitial language not matching the second preferred language, thecomputer system translating the captured data from the initial languageinto to the second preferred language and the computer system replayingthe session by presenting the content in the second preferred language,wherein the presenting the content in the preferred language and thepresenting the content in the second preferred language are performed atleast in part simultaneously.